#pragma once
#include <easyx.h>
#include <functional>
#include <string>

class Button
{
private:
    int x;
    int y;
    int width;
    int height;
    float scale;
    bool isMouseOver;
    std::wstring text;
    std::function<void()> onClick;

public:
    // 构造函数声明
    Button(int x, int y, int width, int height, const std::wstring& text, const std::function<void()>& onClick);

    // 设置按钮文本函数的实现
    void setText(const wchar_t* newText) {
        text = newText;
    }


    // 成员函数声明
    void checkMouseOver(int mouseX, int mouseY);

    bool checkClick(int mouseX, int mouseY);

    void draw();

    // 用于修改点击回调函数
    void setOnClickCallback(const std::function<void()>& newCallback);
};